package com.yiqi.lottery.feature.documentary.contract;

import com.suozhang.framework.entity.bo.PageData;
import com.suozhang.framework.entity.bo.UserInfoBo;
import com.suozhang.framework.framework.BasePresenter;
import com.suozhang.framework.framework.BaseView;
import com.yiqi.lottery.entity.bo.HallBo;
import com.yiqi.lottery.entity.bo.HallUserBo;
import com.yiqi.lottery.entity.bo.OrderBo;
import com.yiqi.lottery.entity.bo.OrderDetailBo;
import io.reactivex.Observable;

public interface PersonContract {

    interface Model {
        Observable<String> followUser(UserInfoBo userId);

        Observable<String> unfollowUser(UserInfoBo userId);

        Observable<String> followOrder(OrderBo orderId);

        Observable<HallUserBo> getUserInfo(Integer userid);

        Observable<OrderDetailBo> getGendanDetail(Integer orderid,int  type);

    }

    interface View extends BaseView {
        void showFollowSuccess(String id);

        void showFollowError(String ex);

        void showFollowOrderSuccess(String msg);

        void showUserInfoSuccess(HallUserBo hallUserBo);

        void showUserInfoError(String ex);

        void showGendanDetailSuccess(OrderDetailBo hallUserBo);
    }


    interface Presenter extends BasePresenter {
        void followUser(Integer userId);

        void unfollowUser(Integer userId);

        void followOrder(Integer orderId);

        void getUserInfo(Integer userid);

        void getGendanDetail(Integer orderid,int type);
    }
}
